package com.test.jpa.bean;

import javax.persistence.*;

/**
 *
 * 其他注解:
 *
 * @Temporal: 用来设置Date类型的属性映射到对应精度的字段
 * @Enumerated: 直接映射enum枚举类型的字段
 * @Lob: 将属性映射成数据库支持的大对象类型，支持以下两种数
 * 据库类型的字段
 *
 */
//该注解标识后会被JPA管理
@Entity
//指定数据库表名
@Table(name = "person")
public class Person {


    //主键, 一个实体类中必须有一个
    @Id
    //主键生成策略
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    //表示属性是到数据库表的字段的映射, 默认就是@Basic, 所以可以省略不写
    //@Basic
    //定义该属性对应数据库中的列名
    @Column
    private String name;

    // 表示该属性并非一个到数据库表的字段的映射, JPA映射数据库的时候忽略它
    //@Transient
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}
